function initEnv() {
	$("body").append(DWZ.frag["dwzFrag"]);

	if ($.browser.msie && /6.0/.test(navigator.userAgent)) {
		try {
			document.execCommand("BackgroundImageCache", false, true);
		} catch (e) {
		}
	}
	// 清理浏览器内存,只对IE起效
	if ($.browser.msie) {
		window.setInterval("CollectGarbage();", 10000);
	}

	$(window).resize(function() {
				initLayout();
				$(this).trigger(DWZ.eventType.resizeGrid);
			});

	var ajaxbg = $("#background,#progressBar");
	ajaxbg.hide();
	$(document).ajaxStart(function() {
				ajaxbg.show();
			}).ajaxStop(function() {
				ajaxbg.hide();
			});

	$("#leftside").jBar({
				minW : 150,
				maxW : 700
			});

	if ($.taskBar)
		$.taskBar.init();
	navTab.init();
	if ($.fn.switchEnv)
		$("#switchEnvBox").switchEnv();
	if ($.fn.navMenu)
		$("#navMenu").navMenu();

	setTimeout(function() {
				initLayout();
				initUI();

				// navTab styles
				var jTabsPH = $("div.tabsPageHeader");
				jTabsPH.find(".tabsLeft").hoverClass("tabsLeftHover");
				jTabsPH.find(".tabsRight").hoverClass("tabsRightHover");
				jTabsPH.find(".tabsMore").hoverClass("tabsMoreHover");

			}, 10);

}
function initLayout() {
	var iContentW = $(window).width()
			- (DWZ.ui.sbar ? $("#sidebar").width() + 10 : 34) - 5;
	var iContentH = $(window).height() - $("#header").height() - 34;

	$("#container").width(iContentW);
	$("#container .tabsPageContent").height(iContentH - 34).find("[layoutH]")
			.layoutH();
	$("#sidebar, #sidebar_s .collapse, #splitBar, #splitBarProxy")
			.height(iContentH - 5);
	$("#taskbar").css({
				top : iContentH + $("#header").height() + 5,
				width : $(window).width()
			});
}

function initUI(_box) {
	var $p = $(_box || document);

	//按钮	
	$(".hg_btn",$p).wrap("<span class='button' style='margin:0px 5px;' ></span>").wrap("<span class='buttonContent'></span>");
	$("div.panel", $p).jPanel();

	// tables
	$("table.table", $p).jTable({single:true,toggle:true});

	// css tables
	$('table.list', $p).cssTable();
	$("table.sortTable",$p).each(function(){
		$(this).jTable({single:true,toggle:true});
		var saveOrderUrl = $(this).attr("saveOrderUrl");
		if($.fn.sorttable) {
			var  $head = $(".gridHeader table thead tr",$p);
			var  $btn = $(".sortTableBtn",$p);
			var ref = $btn.attr("ref");
			/*
			$btn.bind("click", function() {
				*/	
			if(ref != null) {
					if($btn.attr("isSameType") == "0") {
						$(".gridTbody table", $p).sorttable({"head": $head, "btn": $btn, "url": saveOrderUrl});
					}else {
						alert("请先选择类型后点搜索再排序！");
					}	
			}else {
				$(".gridTbody table",$p).sorttable({"head":$head,"btn":$btn,"url":saveOrderUrl});
			}
				
			//});
			
			$(this).jTable({single:true,toggle:true});

			
			
			
		}
	});

	// auto bind tabs
	$("div.tabs", $p).each(function() {
				var $this = $(this);
				var options = {};
				options.currentIndex = $this.attr("currentIndex") || 0;
				options.eventType = $this.attr("eventType") || "click";
				$this.tabs(options);
			});

	$("ul.tree", $p).jTree();
	$('div.accordion', $p).each(function() {
				var $this = $(this);
				$this.accordion({
							fillSpace : $this.attr("fillSpace"),
							alwaysOpen : true,
							active : 0
						});
			});

	$(":button.checkboxCtrl, :checkbox.checkboxCtrl", $p).checkboxCtrl($p);

	if ($.fn.combox)
		$("select.combox", $p).combox();
    if($.fn.initCombox)
    	$("select.initCombox",$p).initCombox($p);
    
	if ($.fn.xheditor) {
		$("textarea.editor", $p).each(function() {
			var $this = $(this);
			var op = {
				html5Upload : false,
				skin : 'vista',
				tools : $this.attr("tools") || 'full'
			};
			var upAttrs = [["upLinkUrl", "upLinkExt", "zip,rar,txt"],
					["upImgUrl", "upImgExt", "jpg,jpeg,gif,png"],
					["upFlashUrl", "upFlashExt", "swf"],
					["upMediaUrl", "upMediaExt", "avi"]];

			$(upAttrs).each(function(i) {
						var urlAttr = upAttrs[i][0];
						var extAttr = upAttrs[i][1];

						if ($this.attr(urlAttr)) {
							op[urlAttr] = $this.attr(urlAttr);
							op[extAttr] = $this.attr(extAttr) || upAttrs[i][2];
						}
					});

			$this.xheditor(op);
		});
	}

	if ($.fn.uploadify) {
		$(":file[uploaderOption]", $p).each(function() {
					var $this = $(this);
					var options = {
						fileObjName : $this.attr("name") || "file",
						auto : true,
						multi : true,
						onUploadError : uploadifyError
					};

					var uploaderOption = DWZ.jsonEval($this
							.attr("uploaderOption"));
					$.extend(options, uploaderOption);

					DWZ.debug("uploaderOption: " + DWZ.obj2str(uploaderOption));

					$this.uploadify(options);
				});
	}

	// init styles
	$("input[type=text], input[type=password], textarea", $p)
			.addClass("textInput").focusClass("focus");

	$("input[readonly], textarea[readonly]", $p).addClass("readonly");
	$("input[disabled=true], textarea[disabled=true]", $p).addClass("disabled");

	$("input[type=text]", $p).not("div.tabs input[type=text]", $p)
			.filter("[alt]").inputAlert();

	// Grid ToolBar
	$("div.panelBar li, div.panelBar", $p).hoverClass("hover");

	// Button
	$("div.button", $p).hoverClass("buttonHover");
	$("div.buttonActive", $p).hoverClass("buttonActiveHover");

	// tabsPageHeader
	$(
			"div.tabsHeader li, div.tabsPageHeader li, div.accordionHeader, div.accordion",
			$p).hoverClass("hover");

	// validate form
	$("form.required-validate", $p).each(function() {
		var $form = $(this);
		$form.validate({
					onsubmit : false,
					focusInvalid : false,
					focusCleanup : true,
					errorElement : "span",
					ignore : ".ignore",
					invalidHandler : function(form, validator) {
						var errors = validator.numberOfInvalids();
						if (errors) {
							var message = DWZ
									.msg("validateFormError", [errors]);
							alertMsg.error(message);
						}
					}
				});

		$form.find('input[customvalid]').each(function() {
					var $input = $(this);
					$input.rules("add", {
								customvalid : $input.attr("customvalid")
							})
				});
	});

	if ($.fn.datepicker) {
		$('input.date', $p).each(function() {
					var $this = $(this);
					var opts = {};
					if ($this.attr("dateFmt"))
						opts.pattern = $this.attr("dateFmt");
					if ($this.attr("minDate"))
						opts.minDate = $this.attr("minDate");
					if ($this.attr("maxDate"))
						opts.maxDate = $this.attr("maxDate");
					if ($this.attr("mmStep"))
						opts.mmStep = $this.attr("mmStep");
					if ($this.attr("ssStep"))
						opts.ssStep = $this.attr("ssStep");
					$this.datepicker(opts);
				});
	}

	// navTab
	$("a[target=navTab]", $p).each(function() {
		$(this).click(function(event) {

			var $this = $(this);
			var title = $this.attr("title") || $this.text();
			var tabid = $this.attr("rel") || "_blank";
			var fresh = eval($this.attr("fresh") || "true");
			var external = eval($this.attr("external") || "false");
			var url = unescape($this.attr("href"))
					.replaceTmById($(event.target).parents(".unitBox:first"));
			DWZ.debug(url);
			if (!url.isFinishedTm()) {
				alertMsg.error($this.attr("warn") || DWZ.msg("alertSelectMsg"));
				return false;
			}
			$(document).data("target",$(this).attr("target"));
			navTab.openTab(tabid, url, {
						title : title,
						fresh : fresh,
						external : external
					});

			event.preventDefault();
		});
	});

	// dialogs
	$("a[target=dialog]", $p).each(function() {
		$(this).click(function(event) {
			var $this = $(this);
			var title = $this.attr("title") || $this.text();
			var rel = $this.attr("rel") || "_blank";
			var options = {};
			var w = $this.attr("width");
			var h = $this.attr("height");
			if (w)
				options.width = w;
			if (h)
				options.height = h;
			options.max = eval($this.attr("max") || "false");
			options.mask = eval($this.attr("mask") || "false");
			options.maxable = eval($this.attr("maxable") || "true");
			options.minable = eval($this.attr("minable") || "true");
			options.fresh = eval($this.attr("fresh") || "true");
			options.resizable = eval($this.attr("resizable") || "true");
			options.drawable = eval($this.attr("drawable") || "true");
			options.close = eval($this.attr("close") || "");
			options.param = $this.attr("param") || "";
            options.closeCallback = $this.attr("closeCallback");  
			var url = unescape($this.attr("href"))
					.replaceTmById($(event.target).parents(".unitBox:first"));
			DWZ.debug(url);
			if (!url.isFinishedTm()) {
				alertMsg.error($this.attr("warn") || DWZ.msg("alertSelectMsg"));
				return false;
			}
			$(document).data("target",$(this).attr("target"));
			$.pdialog.open(url, rel, title, options);

			return false;
		});
	});
	$("a[target=ajax]", $p).each(function() {
				$(this).click(function(event) {
							var $this = $(this);
							var rel = $this.attr("rel");
							if (rel) {
								var $rel = $("#" + rel);
								$rel.loadUrl($this.attr("href"), {},
										function() {
											$rel.find("[layoutH]").layoutH();
										});
							}

							event.preventDefault();
						});
			});
	$("div.pagination", $p).each(function() {
				var $this = $(this);
				$this.pagination({
							targetType : $this.attr("targetType"),
							rel : $this.attr("rel"),
							totalCount : $this.attr("totalCount"),
							numPerPage : $this.attr("numPerPage"),
							pageNumShown : $this.attr("pageNumShown"),
							currentPage : $this.attr("currentPage")
						});
			});

	if ($.fn.sortDrag)
		$("div.sortDrag", $p).sortDrag();
	//hulxg 自定义的
	if($.fn.formatData)  $("[formatData]",$p).formatData();
	if($.fn.showElement) $("a[ref]",$p).showElement(); 
	//if($.fn.formatData)  $("[formatData]",$p).formatData();
 	if($.fn.dateFormat) $("[datepattern]",$p).dateFormat();
	// dwz.ajax.js
	if ($.fn.ajaxTodo)
		$("a[target=ajaxTodo]", $p).ajaxTodo();
	if ($.fn.dwzExport)
		$("a[target=dwzExport]", $p).dwzExport();

	if ($.fn.lookup)
		$("[lookupGroup]", $p).lookup();
	if ($.fn.multLookup)
		$("[multLookup]:button", $p).multLookup();
	if ($.fn.suggest)
		$("input[suggestFields]", $p).suggest();
	if ($.fn.itemDetail)
		$("table.itemDetail", $p).itemDetail();
	if ($.fn.selectedTodo)
		$("a[target=selectedTodo]", $p).selectedTodo();
	if ($.fn.pagerForm)
		$("form[rel=pagerForm]", $p).pagerForm({
					parentBox : $p
				});
       
	// 这里放其他第三方jQuery插件...
}
